import Vue from 'vue'
const interception = function (to, from, next) {
  // 不需要用户信息
  if (to.meta.login) {
    next()
    return
  }
  Vue.prototype.$local.set('login', to.meta.loginType)
  // 是否已经获取用户信息
  if (Vue.prototype.$store.getters.currentUser.mid) {
    next()
    return
  }
  // 先获取用户信息 再跳转下一页
  Vue.prototype.$store.dispatch({
    type: 'userInfo'
  }).then(() => {
    // 先获取分期
    if (to.meta.stageId) {
      Vue.prototype.$store.dispatch({
        type: 'actStage'
      }).then(() => {
        next()
      }).catch((message) => {
        next({name: 'projectLogin'})
      })
    } else {
      next()
    }
  }, (err) => {
    // Error handle
    const {status} = err.request
    let errText = '请先登入'
    switch (status) {
      case 504:
        errText = '网关超时'
        break
    }
    Vue.prototype.$message.error(errText)
    let loginName = Vue.prototype.$local.get('login')
    next({name: loginName})
  })
}
export default interception
